package com.vegetable.common.annotation;

import java.lang.annotation.*;

/**
 * 销售客户数据权限控制注解
 * 用于标记需要进行销售客户数据权限控制的方法
 * 例如：销售部门人员只能查看自己关联客户的订单数据
 *
 * @author Qoder
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SalesCustomerPermission {
    
    /**
     * 数据权限类型
     * CUSTOMER: 客户数据权限
     */
    enum PermissionType {
        CUSTOMER
    }
    
    /**
     * 权限类型
     */
    PermissionType type() default PermissionType.CUSTOMER;
    
    /**
     * 需要过滤的参数名
     * 对应方法参数中的Map或QueryWrapper对象
     */
    String filterParam() default "params";
}